home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / T4FPPLD.ZIP / PPLD.DOC < prev    next >
Text File  |  1995-10-13  |  11KB  |  296 lines

  1.  
  2.                              PPLD V3.00
  3.  
  4.                    (C)1994-95 Chicken [Tools4Fools]
  5.  
  6.                      This is No-Pain-No-Gain-Ware
  7.               Cut off your favourite finger to register !
  8.  
  9.  
  10.      -----------------------------------------------------------
  11.  
  12.  
  13. WHAT IS PPLD GOOD FOR ?
  14.  
  15. Makes your potatoes grow BIGGER !
  16. Gives you a body IRRESTIBLE to ANY kind of girls !
  17. Cures your aunts gout, hunchback AND PERITONITIS !
  18. Makes your wedding dress DAZZLING white !
  19. Brings you BILLIONS of dollars ! (send me $186.43 for more details)
  20. Kills ANYTHING with more than four legs tickling in your hair !
  21.  
  22. Ah  yeah, and besides this, it  decompiles  the  PCBoard  Programming
  23. Language Executables (.PPE) back  to  what they were  before  the so-
  24. called compilation. Well, they call it compilation, in fact it's just
  25. a translation  to tockens simple  enough to be executed by the stupid
  26. interpreter (my C-64 did it too).
  27.  
  28. [philosophical intermezzo ON]
  29.  
  30.   As long as Clark Development Company Inc. can't come up with a REAL
  31.   compiler there will be decompilers by me or  by others. CDC started
  32.   to  encrypt the .PPEs created  with  PPLC 3.0 and  newer.  The only
  33.   effect is even more slowness, nothing else.  Ah yes, it also  makes
  34.   it harder for talented authors to protect their work with some well
  35.   misplaced bytes (Anti Decompiling System). Dear CDC developers, why
  36.   not creating some real ASM code ?  PPEs would run at a decent speed
  37.   and decompilers would be dead forever.  Right, real compilers are a
  38.   bit trickier to do. But hey !  What are you getting your bucks for
  39.   then ?
  40.  
  41.   Thank you.
  42.  
  43. [philosophical intermezzo OFF]
  44.  
  45.  
  46.      -----------------------------------------------------------
  47.  
  48.  
  49. BUT HOW TO USE IT ?
  50.  
  51. ppld [options] srcname[.ext] [dstname[.ext]]
  52.  
  53. Standard  extensions are:  for source .PPE,  for destination .PPD (to
  54. prevent overwriting of existing source code).
  55.  
  56. Options:
  57.  
  58. /NOTRACE - Disable Trace Mode
  59.            PPLD will decompile the whole code and  therefore probably
  60.            get traped by an  anti decompiling  trick.  But if it gets
  61.            through,  you can seek for disabled features and  mindless
  62.            coders.
  63.  
  64.  
  65.      -----------------------------------------------------------
  66.  
  67.  
  68. TROUBLE SHOOTINGS (BLAM BLAM, YOU'RE DEAD)
  69.  
  70. PPLC replaces all FOR/WHILE/CASE/... thingies with IF/GOTO statements
  71. and rearranges  IF [..] THEN [..] ENDIF like this (with ELSE it  gets
  72. even worse):
  73.  
  74.         IF [..] THEN
  75.         [..]
  76.         ENDIF           ..is compiled as:
  77.  
  78.         IF ![..] GOTO LABEL
  79.         [..]
  80.         :LABEL
  81.  
  82. Little hint: As the  usage of FOR [...] NEXT causes a real mess  with
  83. lotta useless worstcase bound checkings, your program will run faster
  84. when  you  implement the routine  using WHILE or an  own IF [..] THEN
  85. construction.
  86.  
  87. Serious crashes can be caused by the following reasons:
  88.  
  89.      a) A REAL big .PPE needs too many labels.
  90.         "can't imagine"
  91.  
  92.      b) A REAL nasty line gets too long.
  93.         "we think our .ppe isn't slow enough"
  94.         (seems to get common to make 1000 times 1+1, but let me warn
  95.          you that this costs you several kbytes of stack and makes
  96.          your .ppe running sloooooooooow)
  97.  
  98.      c) A REAL ugly expression has too much iterations.
  99.         "recursion rulez"
  100.  
  101.      d) I created buggy translation tables.
  102.         "beautiful secretaries can't type"
  103.  
  104. It is possible that a .PPE doesn't recompile to the same size for the
  105. following reasons:
  106.  
  107.      a) PPLD will skip unused code.  (Use the /NOTRACE option to dis-
  108.         able this feature)
  109.         "this one is called *AI Optimation Mode*"
  110.  
  111.      b) PPLD just forgets about variables defined but not used in the
  112.         code. (variables are recognized upon usage at positions where
  113.         PPLC requieres VAR as function/statement parameter)
  114.         "this one is called *AI Optimation Mode*"
  115.  
  116.      c) You have to  compile with the same commandline options as the
  117.         author for the original .PPE.
  118.         "my two-lines-ppe takes only one kilobyte"
  119.  
  120.      d) There are some quite strange .PPEs with only half of the pre-
  121.         defined user variables included.
  122.         "public betas suck"
  123.  
  124.      e) There's a bug in PPLC. You'll get a note in the .PPD if this
  125.         bug was used to protect the .PPE from decompiling.
  126.  
  127. It is possible that a .PPE doesn't recompile at all for the following
  128. reasons:
  129.  
  130.      a) With some tricks, it's possible to use the  ENDPROC / ENDFUNC
  131.         statements before the real end of a procedure/function.
  132.  
  133.         Example: IF condition THEN
  134.                     ENDPROC             ;the early end
  135.                  ENDIF
  136.                  [...]
  137.                  ENDPROC                ;the real end
  138.  
  139.                  This code will decompile to something like:
  140.  
  141.                  IF !condition GOTO label
  142.                  ENDPROC                ;the early end
  143.                  :label
  144.                  [...]
  145.                  ENDPROC                ;the real end
  146.  
  147.         The problem with this is, that PPLC refuses to recompile this
  148.         code as it can't find the label behind the ENDPROC statement.
  149.         To make it recompilable, just retype it in the original IF ..
  150.         THEN .. ENDIF style. Hope to fix this in next version.
  151.  
  152.  
  153. At the end of  the source, is a list of used functions/statements. If
  154. you encounter some missing names or ???s the command is unknown.
  155.  
  156.  
  157.      -----------------------------------------------------------
  158.  
  159.  
  160. MESSAGES:
  161.  
  162. eULE!           One year without computer, only school, girls and
  163.                 boozing... guess i have to finish our project myself.
  164.  
  165. Lone Runner     Thx for giving me back the motivation to continue
  166.                 on PPLD.
  167.  
  168. PPE Coders      Don't write me: PPLD is great to learn PPL...
  169.                 Be honest     : Send me latest PPLD so I can go on
  170.                                 ripping state-of-the-art lightbars.
  171.  
  172. Real Programmer Tools 4 Fools wants YOU !
  173.                 Don't hesitate to contact us.
  174.  
  175. CDC             [ignore on] ?
  176.  
  177.    
  178.      -----------------------------------------------------------
  179.  
  180.  
  181. REVISION HISTORY:
  182.  
  183. 25.06.94        release of version 1.00 (nightmares get real!)
  184.  
  185. 01.07.94        release of version 1.01 (bugs, bugs, bugs!)
  186.                 - bugfix: decompiled LANGTEXT instead of LANGEXT
  187.                 - bugfix: decompiled FPUTAD instead of FPUTPAD
  188.                 - bugfix: decompiled CDKCHON instead of CDCHKON
  189.                 - bugfix: decompiled UNOPER instead of UN_OPER
  190.                 - bugfix: decompilation errors on statement FFLUSH
  191.                 - bugfix: decompilation errors on statement REDIM
  192.                 - bugfix: decompilation errors on statement SORT
  193.                 - bugfix: added missing statement MOUSEREG
  194.                 - bugfix: added missing statement BRAG
  195.                 - bugfix: added missing statement FREALTUSER
  196.                 - bugfix: added missing function HIMSGNUM
  197.                 - bugfix: added missing function LOMSGNUM
  198.                 - bugfix: added missing function KBDFILUSED
  199.                 - bugfix: added missing function PPLBUFSIZE
  200.                 - bugfix: added missing function KBDBUFSIZE
  201.                 - bugfix: added missing function FLAGCNT
  202.                 - bugfix: out of memory on ppe without vars/constants
  203.  
  204. 20.08.94        release of version 1.02 (it's alive!)
  205.                 * recursive trace mode to detect decompiling traps.
  206.                   This  prevents PPLD  from decompiling passages with
  207.                   unknown functions/statements.
  208.                   As side effect it won't decompile unused code.
  209.                 * added /NOTRACE  option to  turn off  trace mode and
  210.                   its "features".
  211.                 - bugfix: decompilation errors on VARSEG, VAROFFS,
  212.                   VARADDR, SCRFILE after SORT-bugfix in last version
  213.  
  214. 22.09.94        release of version 2.00 (the fake!)
  215.                 !!!!!!!! DON'T USE IT, IT'S A TROYAN !!!!!!!!
  216.  
  217. 13.10.95        release of version 3.00 (who says late?)
  218.                 * added PPLC 3.0 decryption
  219.                 * added PPLC 3.0 new statements/functions/types...
  220.                 * added PPLC 3+ procedures/functions
  221.                 * added PPLC 3.10 decryption (which doesn't pack 0's
  222.                   if there's no gain in it)
  223.                 * added PPLC 3.10 new statements/functions
  224.                 * added PPLC 3.20 new statements/functions
  225.                 * added !0+!0 bug detection
  226.                 - bugfix: decrypting aborted even everything was ok
  227.                 - bugfix: trace abort on jump to program start/end
  228.                 - bugfix: 4 times more memory for BIIIIIIIG strings
  229.                 - bugfix: correct output of floatingpoint constants
  230.                   ARGH! costs 10kb of executable size!!!
  231.                   (hmm, wonder why you didn't notice this ?  are PPE
  232.                   coders to stupid to use 'em ?)
  233.  
  234. The version  with Clark Development copyrights is a fake/ripoff/patch
  235. of PPLD version 1.00 by unknown losers (same code, same bugs).
  236.  
  237. The version 2.00  released  by an  unknown  lamer in  september is  a
  238. troyan and will most probably delete your harddisc.
  239.  
  240.  
  241.      -----------------------------------------------------------
  242.  
  243.  
  244. CONTACT THE AUTHOR !
  245.  
  246. If you got an idea for some features, dig it :).
  247. But for chitchat, donations, news about PPLC 4.0, hate mails...
  248.  
  249. call The Lycaeum:     +41 41-484-2989 [ZYX]
  250.                       +41 41-484-3289 [USR V34]
  251.  
  252. email via InterNet:   chicken@ezinfo.vmsmail.ethz.ch
  253.  
  254. or snail mail:        Adrian Studer
  255.                       Hauptstrasse 54
  256.                       6170 Schüpfheim
  257.                       Switzerland
  258.  
  259.  
  260.      -----------------------------------------------------------
  261.  
  262.  
  263. COPYRIGHTS:
  264.  
  265. PPLD is copyright of the author.  The author allows to: use software,
  266. make copies  of it, give copies to anybody  and distribute it through
  267. electronic media.
  268.  
  269. It  is not  allowed to ask  for money or  donations for  any  copy or
  270. copies of the  program,  neither distribute the software and/or docu-
  271. mentation with commercial products and/or donuts.
  272.  
  273.  
  274.      -----------------------------------------------------------
  275.  
  276.  
  277. DISK-LAMER:
  278.  
  279. The author denies any responsibilities for illegal acts involving the
  280. (mis)use  of PPLD.  It  is  illegal (and lame) to  spread  copies  of
  281. tampered and/or modified PPEs.
  282.  
  283. Pay fair prices to fair shareware authors (like us ?)
  284.  
  285. This EXCLUDES software which:
  286.         a) contains backdoors
  287.      or b) consists of less than 50 lines code
  288.      or c) costs  more than $20 (don't tell me you invested months in
  289.            your one-in-thousands-so-fucking-boring-online-game)
  290.  
  291. This INCLUDES the great work of the rare REAL coders doing .PPEs !
  292.  
  293.  
  294.      -----------------------------------------------------------
  295.              ! T4F, INCREASES THE QUALITY OF YOUR LIFE !
  296.